//package com.icss.background.common.util;
//
//import java.io.BufferedReader;
//import java.io.File;
//import java.io.FileInputStream;
//import java.io.FileNotFoundException;
//import java.io.IOException;
//import java.io.InputStream;
//import java.io.InputStreamReader;
//
//import cpdetector.io.ASCIIDetector;
//import cpdetector.io.CodepageDetectorProxy;
//import cpdetector.io.JChardetFacade;
//import cpdetector.io.ParsingDetector;
//import cpdetector.io.UnicodeDetector;
//
//public class FileEncodeDetector {
//	/**
//	 * 获取文件编码格式
//	 * 
//	 * @param file
//	 * @return
//	 */
//	public static String getFileEncode(File file) {
//		/*------------------------------------------------------------------------
//		  detector是探测器，它把探测任务交给具体的探测实现类的实例完成。
//		  cpDetector内置了一些常用的探测实现类，这些探测实现类的实例可以通过add方法
//		  加进来，如ParsingDetector、 JChardetFacade、ASCIIDetector、UnicodeDetector。
//		  detector按照“谁最先返回非空的探测结果，就以该结果为准”的原则返回探测到的
//		  字符集编码。
//		   使用需要用到三个第三方JAR包：antlr.jar、chardet.jar和cpdetector.jar
//		   cpDetector是基于统计学原理的，不保证完全正确。
//		--------------------------------------------------------------------------*/
//		CodepageDetectorProxy detector = CodepageDetectorProxy.getInstance();
//		/*-------------------------------------------------------------------------
//		  ParsingDetector可用于检查HTML、XML等文件或字符流的编码,构造方法中的参数用于
//		  指示是否显示探测过程的详细信息，为false不显示。
//		---------------------------------------------------------------------------*/
//		detector.add(new ParsingDetector(false));
//		/*--------------------------------------------------------------------------
//		  JChardetFacade封装了由Mozilla组织提供的JChardet，它可以完成大多数文件的编码
//		  测定。所以，一般有了这个探测器就可满足大多数项目的要求，如果你还不放心，可以
//		  再多加几个探测器，比如下面的ASCIIDetector、UnicodeDetector等。
//		 ---------------------------------------------------------------------------*/
//		detector.add(JChardetFacade.getInstance());// 用到antlr.jar、chardet.jar
//		// ASCIIDetector用于ASCII编码测定
//		detector.add(ASCIIDetector.getInstance());
//		// UnicodeDetector用于Unicode家族编码的测定
//		detector.add(UnicodeDetector.getInstance());
//		java.nio.charset.Charset charset = null;
//		try {
//			charset = detector.detectCodepage(file.toURI().toURL());
//		} catch (Exception ex) {
//			ex.printStackTrace();
//		}
//		if (charset != null) {
//			String encode = charset.name();
//			// Windows下Unicode探测后得到Windows-1252
//			if ("Windows-1252".equalsIgnoreCase(encode)) {
//				encode = "Unicode";
//			}
//			return encode;
//		} else {
//			return null;
//		}
//	}
//
//	/**
//	 * @param file
//	 * @return
//	 */
//	public boolean isUnicode(File file) {
//		return "Unicode".equalsIgnoreCase(getFileEncode(file));
//	}
//
//	/**
//	 * @param file
//	 * @return
//	 */
//	public boolean isGBK(File file) {
//		String encode = getFileEncode(file);
//		return "GBK".equalsIgnoreCase(encode)
//				|| "GB2312".equalsIgnoreCase(encode);
//	}
//
//	/**
//	 * @param file
//	 * @return
//	 */
//	public boolean isBIG5(File file) {
//		return "BIG5".equalsIgnoreCase(getFileEncode(file));
//	}
//
//	public static void main(String[] args) throws IOException,
//			FileNotFoundException {
//		// String path =
//		// "D:/code/CaiPiao4/src/net/caipiao/team4/util/ConPool.java";
//		// String path =
//		// "D:/code/Tools/src/com/system/commpont/rt/util/VFSUtilTest.java";
//		String path = "D:/code/Tools/src/com/system/commpont/rt/util/FileUtils - 副本.java";
//		File file = new File(path);
//		String encode = getFileEncode(file);
//		InputStream ios = new java.io.FileInputStream(file);
//		byte[] b = new byte[3];
//		ios.read(b);
//		ios.close();
//		// 文件头
//		if (b[0] == -17 && b[1] == -69 && b[2] == -65
//				|| "UTF-8".equalsIgnoreCase(encode)) {
//			System.out.println(file.getName() + "：编码为UTF-8");
//		} else {
//			System.out.println(file.getName() + "：可能是GBK，也可能是其他编码。");
//		}
//		BufferedReader bufferedReader = new BufferedReader(
//				new InputStreamReader(new FileInputStream(file), encode));
//		System.out.println(encode);
//		// System.out.println(bufferedReader.readLine().substring(1));//
//		// 去掉第一行中的文件头
//		System.out.println(bufferedReader.readLine());// 去掉第一行中的文件头
//	}
//}